Logseq の日本語化
Logseq の日本語マニュアル・ドキュメントを書きました。
以下はアプリの日本語化作業の記録です。
Logseq(ログシーク):オープンソースのアウトライナー
背景
講義でアウトライナーを用いることを以前より考えていました。
アカウント作成の必要なアウトライナーサービスについては、学生さんに登録を強制させたくないという思いがあって、インストール型が良いなぁという思いで Logseq を選択。
あと日本語版があるほうがよい。
アウトライナー、という、触れたことのなさそうなものを導入するに際し、あまりハードルを上げたくなくって。
日本語版はない。じゃあ、自分で翻訳するか。 \imacoco
翻訳の手順
多言語化に用いるツールは tongue (Clojure向けのi18nライブラリ)
テキストエディタで編集するだけなのでとくに意識しなくてよい。
事前準備
babashka (Clojure のインタプリタ)のインストール
コマンド名は bb
bb コマンドは Chromium のビルドツール depot_tools のコマンドと被るので注意。
depot_tools はもう使わないのでアンインストールした。
【Windows10】
PowerShell 5 で scoop(コマンドラインインストーラ)をインストール
iwr -useb get.scoop.sh | iex
scoop bucket add extras
scoop install babashka
curl もインストールしておく
scoop install curl
ja ロケールを追加
翻訳の対象ファイル
翻訳するべきファイルは2つ
メイン
チュートリアル文書の -ja ファイル
コマンドラインツール
プロジェクトルートで実行すること。
次のコマンドで未翻訳の語がわかる
$ bb lang:missing ja
未翻訳の言葉をすべて書き出すには
$ bb lang:missing ja --copy
ja.edn へ貼り付けて、翻訳する。
翻訳率の確認方法
$ bb lang:list
2022年3月1日時点での翻訳率は次の通り。40%が最低ラインで70%越えをまず目指すとよい?
code:rate
| :locale | :percent-translated | :translation-count | :language |
|----------+---------------------+--------------------+------------------------|
| :en | 100 | 496 | English |
| :pt-BR | 98 | 485 | Português (Brasileiro) |
| :nb-NO | 90 | 445 | Norsk (bokmål) |
| :pt-PT | 88 | 438 | Português (Europeu) |
| :zh-CN | 87 | 433 | 简体中文 |
| :ru | 85 | 422 | Русский |
| :es | 70 | 349 | Español |
| :de | 69 | 340 | Deutsch |
| :zh-Hant | 55 | 272 | 繁體中文 |
| :af | 51 | 253 | Afrikaans |
| :fr | 39 | 195 | Français |
翻訳結果がどう適用されているかは、ビルドしながら確認する。
ビルド(準備)
手順概要
Windowsの場合
clj on Windows をインストール
PowerShell上で
iwr -useb download.clojure.org/install/win-install-1.10.3.1087.ps1 | iex
1)C:\Users\ユーザ名\Documents\PowerShell\Modules へインストールした
以降、クロージャcljの実行はPowerShellからやるほうがよいかも。
プロジェクトルートへ移動して yarn
翻訳結果のアプリ上での確認は開発用ビルドでOK。Windows の場合、以下を手動で。
まず "copy files in resources to static" 処理を下記コマンドで。
cp -r resources/* static/
以降は Web app版と Electron版で異なる
Web app 版(ブラウザ状で動作)の開発用ビルド
yarn
yarn css:watch
別の端末で
clj -M:cljs watch app electron
Electron版(デスクトップ)の開発用ビルド
node-gyp 用のビルド環境をインストール
python3 ほか。python は Windows Store 版より公式サイト版をインストール
yarn
yarn css:watch
別の端末で
clj -M:cljs watch app electron
別の端末で
プロジェクトルートから cd static
yarn
yarn electron:dev
なお、Logseqのプロセスが立ち上がっていると起動しないので、ほかで起動している場合は閉じること。
node-gyp が VisualStudio を発見できないエラーが出る場合は、Developer Powershell for VS で実行してみる。
必要であれば、Powershell 上で > Set-ExecutionPolicy Unrestricted を実行
During the build process node-gyp may complain that it cannot find Visual Studio. Try building the app in Developer Powershell for VS(shipped with Visual Studio). If this does not work for you, This issue may be helpful.
正直、Windowsでの node-gyp の問題の解決は安定した解法がないため、この作業は MacOSやLinux環境でやったほうがよいです。
リリース
とりあえずのリリースビルドをするには、WIndows環境の場合、開発用ビルド環境を整えた上で下記を進める。
gulp の job が window で動作しないので手動で、とドキュメントにあるが、手動でやるとバージョンが反映されない、CSSが最適化されないなど問題があるので、今後 job を windowsで動作するようにするほうがよさそう。
以下、gulp:build の内容を手動でやる
rm -r ./static/**/*'
(これは省略 rm ./static/yarn.lock)
rm -r ./static/node_modules
cp -r ./resources ./static
yarn css:build
このあと、gulpfile.js にあるよう _optimizeCSSForRelease() を実行する必要があるが、略。
以下、gulp electronMaker の内容を手動で
yarn cljs:release-electronを手動で
PowerShellにて、
clj -M:cljs release app publishing electron --debug
(パッケージファイルのバージョン変更、略。v0.0.1となる)
cp -r resources/* static/
cd static
yarn
yarn electron:make
ビルドされたインストールパッケージは static/out/make/squirrel/windows/x64/Logseq-x.y.z Setup.exe
Lint&Testのヒント
その他
編集のため Google Spread sheet を作成しました。
英語版と日本語版の画面キャプチャで適用結果を確認できるようにする
・・と、せっかく作りましたが、公式で tongue で多言語化する方法が示されていたので、上記のようにそちらで。
日付表記の変更が必要
設定ファイルを変更すればできる。
言語によるデフォルト値の変更は簡単ではない?(要調査)